<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // Number新增

    // 进制:计数的方式
    // 二进制 0 1 => 10
    // 八进制 0 1 2 3 4 5 6 7 => 10
    // 十进制 0 1 2 3 4 5 6 7 8 9 => 10
    // 16进制 0 1 2 3 4 5 6 7 8 9 a b c d e f => 10

    // 分/秒:  0 ...... 57 58 59 =>

    // JS进制表示法

    // 二进制(ES6新增 binary)
    // console.log(0b11); // 3

    // 八进制(ES6新增  octal)
    // console.log(0o11); // 9

    // 十进制
    // console.log(11); // 11

    //  16进制
    // console.log(0x11);// 17


    // ------------------------------------------------

    // 构造函数Number的新增方法:

    // Number.isFinite()用来检查一个数值是否为有限的（finite），即不是Infinity。
    // 注意，如果参数类型不是数值，Number.isFinite一律返回false。

    // console.log(Number.isFinite(1));
    // console.log(Number.isFinite(100));
    // console.log(Number.isFinite(-1));

    // console.log(Number.isFinite(NaN));  // false
    // console.log(Number.isFinite(Infinity)); // false

    // Number.isNaN()用来检查一个值是否为NaN。
    // 如果参数类型不是NaN，Number.isNaN一律返回false。
    // console.log(Number.isNaN(NaN));

    // console.log(Number.isNaN(1));
    // console.log(Number.isNaN(0));
    // console.log(Number.isNaN(-1));
    // console.log(Number.isNaN(Infinity));

    // // 如果传入的参数非数字类型
    // console.log(Number.isNaN("a"));  // 如果参数类型不是NaN，Number.isNaN一律返回false。
    // console.log(isNaN("a")); // 会先隐式转化为数字 在判断 "a" => NaN => true

    // Number.parseInt(), Number.parseFloat()
    // ES6 将全局方法parseInt()和parseFloat()，移植到Number对象上面，行为完全保持不变。

    // Number.isInteger()用来判断一个数值是否为整数。
    // 如果参数不是数值，Number.isInteger返回false。

    // 判断一个数值是否为整数

    // var num = 23;
    // console.log(num % 1 == 0); // true
    // console.log(Number.isInteger(num));// true

    // var num = 23.5;
    // console.log(num % 1 == 0); // false
    // console.log(Number.isInteger(num)); // false

    // var num = "23";
    // console.log(num % 1 == 0); // true  (有隐式类型转换)
    // console.log(Number.isInteger(num)); // false  (没有 => 值判断数字)


    // Number.isSafeInteger();
    // JavaScript 能够准确表示的整数范围在-2^53到2^53之间（不含两个端点），超过这个范围，无法精确表示这个值。
    // 注意:  m**n  表示m的n次方(ES6新增)
    console.log(Math.pow(2, 53), 2 ** 53);
    console.log(Math.pow(2, 53) + 1, 2 ** 53 + 1);


    console.log(Number.isSafeInteger(2 ** 53 - 1))
    console.log(Number.isSafeInteger(2 ** 53))

    // ES6 引入了Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER这两个常量，用来表示这个范围的上下限。

    console.log(Number.MIN_SAFE_INTEGER); // - (2 ** 53 - 1)
    console.log(Number.MAX_SAFE_INTEGER); // 2 ** 53 - 1







</script>

</html>